.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "CHMOD" "1" "February 2015" "" ""
.
.SH "NAME"
\fBchmod\fR \- 更改文件模式
.
.SH "摘要"
\fBchmod [选项] 模式 文件\.\.\.\fR
.
.SH "描述"
本手册页为chmod命令文档的GNU版本。根据模式参数，chmod命令修改给定文件的 文件模式标志位。修改方法有两种，一种是符号表达式修改，另一种是八进制数比 特位匹配修改。
.
.P
\fB符号模式\fR
.
.P
符号模式的格式为\fB[ugoa] [[+\-=][perms\.\.\.]\.\.\.]\fR，其中perms可以是0，也可以 是rwxXst中的字母集合，还可以是ugo中的某一单个字母。可以同时给出多个符号 表达式，各表达式中间用逗号分开。
.
.P
[ugoa]中的字母组合可以控制改变用户文件的访问权限：u代表文件拥有者(user) ，g代表同一组中的其他用户(group)，o代表不同组的其他用户(other)，而a代表 所有用户(all)。如果没有指定以上任意一个字母，则命令等同于给定a字母，即影 响所有用户，但是此种情况下，umask比特位的设置不受任何影响。
.
.P
[+\-=]中操作符+为单个文件模式比特位增加指定的权限；操作符\-移除权限；操作 符=赋予权限，即增加指定权限，同时没有指定的权限则被移除，但该情况下，目 录未指定的用户集合与组ID标志位不受影响。
.
.P
[rwxXst]中的字母分别对应如下权限：(r)读，(w)写，(x)执行或者搜索目录，(X) 执行/搜索——仅当目标为目录，或某些用户已对该文件具有执行权限时，(s)设置用 户或用户组的执行时权限，即下文中的“SUID与SGID标志位”条目，(t)限制删除标 志位或粘滞位。你可以指定ugo中的任一字母所对应的组别，对其设置上面提到的 各个权限，其中，u代表文件拥有者，g代表与文件同一用户组的其他用户，o代表 以上两个组别以外的用户。(这里说的“文件”概念，包括系统中所有的常规文件、 目录、设备、符号链接等等)
.
.P
\fB数字模式\fR
.
.P
该模式总共有4组八进制数(0\-7)数字集合，均为4、2、1的比特位累加，分别代表 不同的意义，0忽略不计，代表不具有任何权限。第一组的三个数字分别代表用户 ID(4)、组ID(2)和限制删除或粘滞位属性(1)；第二组代表文件拥有者用户的三个 权限：读(4)、写(2)、执行(1)；第三组代表与文件同组的其他用户的读(4)、写 (2)、执行(1)权限；第四组代表文件组以外用户的读(4)、写(2)、执行(1)权限。
.
.P
chmod不会修改符号链接的权限；包括系统调用的chmod也无法修改。这并不是一个 缺陷，而是因为符号链接的权限本身就不起任何作用。尽管如此，chmod却可以修 改符号链接所指向文件的权限。但当符号链接指向循环遍历目录的时候，chmod就 会忽略该符号链接。
.
.SH "SUID与SGID标志位"
文件的SUID与SGID：如果一个常规文件所属的组ID，没有与文件所属用户所在的有 效组ID，或用户的某一个补充组ID相匹配，chmod就会清除该文件的SGID位，除非 用户进行特殊配置，但额外的限制可能会导致模式参数或RFILE参数中的SUID和 SGID位失效。这取决于系统调用chmod时的策略与功能设置。如果有疑问，可以具 体查看实际的系统行为设置。
.
.P
目录的SUID与SGID：对于一个目录来说，chmod命令可以正常设置、保存其SUID位 和SGID位，除非你明确地指定其他标志位。你可以通过符号模式，例如\fBu+s\fR和 \fBg\-s\fR来设置或清除其“s”权限，也可以通过数字模式设置(但无法清除)。
.
.SH "限制删除标志或粘滞位"
限制删除标志位是一个单独的比特，其意义取决于不同的文件类型。对于目录来说 ，它防止一般用户删除或重命名目录中的文件，除非该用户是文件或目录的拥有者 ；此称为目录的限制删除标志位，它常常被用于所有人都可写的目录，例如/tmp。 对于一些老系统中的常规文件，该标志位用于在缓存设备中保存程序的文本镜像， 以便程序运行时能够更快速的加载，此称为粘滞位。
.
.SH "选项"
.
.TP
\fB\-c,\-\-changes\fR
与下面的\-\-verbose参数类似，但是仅当文件改变的时候才报告。
.
.TP
\fB\-f,\-\-silent,\-\-quiet\fR
屏蔽大多数错误信息
.
.TP
\fB\-v,\-\-verbose\fR
输出每个文件的处理报告
.
.TP
\fB\-\-no\-preserve\-root\fR
不处理‘/’(默认)
.
.TP
\fB\-\-preserve\-root\fR
无法递归处理‘/’时使用此参数
.
.TP
\fB\-\-reference=RFILE文件\fR
使用RFILE文件中的模式代替参数“模式”的值。
.
.P
每个“模式”参数均为\fB[ugoa]*([\-+=]([rwxXst]*|[ugo]))+|[\-+=][0\-7]+\fR的形式。
.
.TP
\fB\-R,\-\-recursive\fR
递归修改文件和目录
.
.TP
\fB\-\-help\fR
显示本帮助并退出
.
.TP
\fB\-\-version\fR
显示版本信息并退出
.
.SH "参见"
chmod(2)
